package org.jeecg.modules.tencent_esign.tencent_flowstatuscallback.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecg.modules.tencent_esign.tencent_contract.entity.TemplateInfoDTO;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * @Description: 腾讯电子签合同签署回调信息表
 * @Author: jeecg-boot
 * @Date:   2025-07-18
 * @Version: V1.0
 */
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="腾讯电子签合同签署回调信息表", description="腾讯电子签合同签署回调信息表")
public class TencentFlowstatuscallbackDTO implements Serializable {
    private static final long serialVersionUID = 1L;

	/**msgid*/
    @JsonProperty("MsgId")
	@Excel(name = "msgid", width = 15)
    @ApiModelProperty(value = "msgid")
    private String msgid;
	/**msgtype*/
    @JsonProperty("MsgType")
	@Excel(name = "msgtype", width = 15)
    @ApiModelProperty(value = "msgtype")
    private String msgtype;
	/**msgversion*/
    @JsonProperty("MsgVersion")
	@Excel(name = "msgversion", width = 15)
    @ApiModelProperty(value = "msgversion")
    private String msgversion;




    @ApiModelProperty(value = "MsgData信息")
    private List<TencentFlowstatuscallbackDTO.MsgData> msgDataInfo;
    @Data
    @ApiModel(value = "MsgData信息")
    public static class MsgData {
        /**applicationid*/
        @JsonProperty("ApplicationId")
        @ApiModelProperty(value = "applicationid")
        private String applicationid;
        /**ccinfo*/
      //  @JsonProperty("CcInfo")
        @ApiModelProperty(value = "ccinfo")
        private String ccinfo;
        /**createon*/
        @JsonProperty("CreateOn")
        @ApiModelProperty(value = "createon")
        private int createon;
        /**customerdata*/
        @JsonProperty("CustomerData")
        @ApiModelProperty(value = "customerdata")
        private String customerdata;
        /**deadline*/
        @JsonProperty("Deadline")
        @ApiModelProperty(value = "deadline")
        private int deadline;
        /**flowid*/
        @JsonProperty("FlowId")
        @ApiModelProperty(value = "flowid")
        private String flowid;
        /**flowmessage*/
        @JsonProperty("FlowMessage")
        @ApiModelProperty(value = "flowmessage")
        private String flowmessage;
        /**flowname*/
        @JsonProperty("FlowName")
        @ApiModelProperty(value = "flowname")
        private String flowname;
        /**flowstatus*/
        @JsonProperty("FlowStatus")
        @ApiModelProperty(value = "flowstatus")
        private String flowstatus;
        /**flowtype*/
        @JsonProperty("FlowType")
        @ApiModelProperty(value = "flowtype")
        private String flowtype;
        /**occurtime*/
        @JsonProperty("OccurTime")
        @ApiModelProperty(value = "occurtime")
        private int occurtime;
        /**proxyoperatoropenid*/
        @JsonProperty("ProxyOperatorOpenId")
        @ApiModelProperty(value = "proxyoperatoropenid")
        private String proxyoperatoropenid;
        /**proxyorganizationopenid*/
        @JsonProperty("ProxyOrganizationOpenId")
        @ApiModelProperty(value = "proxyorganizationopenid")
        private String proxyorganizationopenid;
        /**releaseflowid*/
        @JsonProperty("ReleaseFlowId")
        @ApiModelProperty(value = "releaseflowid")
        private String releaseflowid;
        /**templateid*/
        @JsonProperty("TemplateId")
        @ApiModelProperty(value = "templateid")
        private String templateid;
    }


    @ApiModelProperty(value = "合同签署对象信息")
    private List<TencentFlowstatuscallbackDTO.FlowApproverInfo> flowApprovers;

    @Data
    @ApiModel(value = "合同签署对象信息")
    public static class FlowApproverInfo {

        @JsonProperty("ApproveMessage")
        @ApiModelProperty(value = "approvemessage")
        private java.lang.String approvemessage;

        @JsonProperty("ApproveName")
        @ApiModelProperty(value = "approvename")
        private java.lang.String approvename;

        @JsonProperty("ApproveStatus")
        @ApiModelProperty(value = "approvestatus")
        private java.lang.String approvestatus;

        @JsonProperty("ApproveTime")
        @ApiModelProperty(value = "approvetime")
        private  int approvetime;

        @JsonProperty("ApproverDeadline")
        @ApiModelProperty(value = "approverdeadline")
        private int approverdeadline;

        @JsonProperty("CaSign")
        @ApiModelProperty(value = "casign")
        private java.lang.String casign;

        @JsonProperty("OrganizationName")
        @ApiModelProperty(value = "organizationname")
        private java.lang.String organizationname;

        @JsonProperty("PhoneNumber")
        @ApiModelProperty(value = "phonenumber")
        private java.lang.String phonenumber;

        @JsonProperty("ProxyOperatorOpenId")
        @ApiModelProperty(value = "proxyoperatoropenid")
        private java.lang.String proxyoperatoropenid;

        @JsonProperty("ProxyOrganizationName")
        @ApiModelProperty(value = "proxyorganizationname")
        private java.lang.String proxyorganizationname;

        @JsonProperty("ProxyOrganizationOpenId")
        @ApiModelProperty(value = "proxyorganizationopenid")
        private java.lang.String proxyorganizationopenid;
        @JsonProperty("RecipientId")
        @ApiModelProperty(value = "recipientid")
        private java.lang.String recipientid;

        @JsonProperty("SignOrder")
        @ApiModelProperty(value = "signorder")
        private java.lang.String signorder;
    }


}
